package com.itheima.d4_static_attention;

/*
  目标：掌握使用类方法、实例方法时的几点注意事项。


    1、类方法中可以直接访问类的成员，不可以直接访问实例成员。
    2、实例方法中既可以直接访问类成员，也可以直接访问实例成员。
    3、实例方法中可以出现this关键字，类方法中不可以出现this关键字的


    在类内部访问特点简约记忆：
        静态方法只能访问静态成员，非静态方法百无禁忌

 */
public class Student {
    static String schoolName; // 类变量
    double score; // 实例变量


    //类方法
    public static void sayHi1(){
        System.out.println(schoolName);
        sayHi2();

        //静态只直接访问静态成员（静态方法,静态变量）
//        System.out.println(score); //报错：Non-static field 'score' cannot be referenced from a static context
//        showInfo1(); //报错：Non-static method 'showInfo1()' cannot be referenced from a static context
    }

    public static void sayHi2(){
        //测试是否可以存在this
//        System.out.println(this); //报错：'com.itheima.d4_static_attention.Student.this' cannot be referenced from a static context
    }


    //实例方法
    public void showInfo1() {
        //测试是否能访问静态和非静态成员
        //百无禁忌（非静态都可访问）
        System.out.println(schoolName);
        System.out.println(score);

        sayHi1();
        sayHi2();
        showInfo2();
    }

    public void showInfo2() {
        System.out.println(this);
    }
}
